/**
 * stream -- 数据流 
 * 也可以读写文件,但是和 fs 有所不同是他是以流的方式读写的,也就是一点一点的读写,而不像 fs.readFile 一次完成读取文件
 * piPe -- 管
 * 从一个读取流流入写入流
 * 例: 比如这里开始读取文件,下面就准备一个写入文件的流 然后联系 读取到写入的两个流(读取流.pipe(写入流)).这样就相当于复制文件
 */

'use stritc';
 
var fs = require('fs')
// 打开一个流
var rs = fs.createReadStream('./sample.txt', 'utf-8')
rs.on('data', function(chunk) {
    console.log(`DATA: ${chunk}`);
})

rs.on('end', function() {
    console.log('END');
})

rs.on('error', function(err) {
    console.log(`ERROR: ${err}`);
})

// 写入流

var ws1 = fs.createWriteStream('./sample.test', 'utf-8');
ws1.write('使用 fs.createWriteStream 写入文件 \n \t')
ws1.write('END');
ws1.end()

var ws2 = fs.createWriteStream('./sample.test2')
ws2.write(new Buffer('111,', 'utf-8'))
ws2.write(new Buffer('111111', 'utf-8'));
ws2.end()

// pipe 管道

var ws3 = fs.createReadStream('./sample.txt', 'utf-8');
var ws4 = fs.createWriteStream('./ss.text', 'utf-8');
ws3.pipe(ws4);
